The present invention relates to data processing methods and apparatus, more particularly, to methods, apparatus and computer program products for providing user input to an application.
Contact sensitive user input devices such as touch screens are commonly used to provide user input to such devices as personal computers, information kiosks, pen-based computers and the like. Typically, contact-sensitive user input devices include devices employing resistive, capacitive and surface acoustic wave (SAW) surface transducers. As is well-known to those of ordinary skill in the art, resistive and capacitive devices typically operate by producing a signal that is altered by impedance changes induced by pressure applied to a specially-designed conductive or capacitive sheet. SAW devices operate by propagating acoustic waves across a surface such as the glass surface of a cathode ray tube (CRT) in a uniform manner, and detecting disturbances in the propagation of these waves caused by the contact of a finger or other object with the surface.
Contact-sensitive user input devices typically produce a signal that has a signature that indicates a location on the transducer surface at which contact occurs. Control circuits typically process the signal to generate x and y coordinates for the point of contact. For example, a touch screen controller may receive input signals from the touch screen or pad and process the received signals to provide coordinate information in a format that can be used by a conventional mouse event handler in an application to perform tasks such as drawing a graphic object, clicking a button, dragging or dropping an object or the like. In a pen-based computer, for example, a pen may be used to contact a contact-sensitive surface to select various user options, as well as to provide text and other graphic inputs to an application running on the pen-based computer.
Conventional touch screen applications may be limited to providing user input according to a fixed user input mode, e.g., to selecting buttons on a information kiosk screen, or may require preselection of a user input mode before coordinate data from the touch screen is processed. For example, in a typical graphics editing application in which objects are drawn and manipulated on a page depicted on a computer screen, a user preselects a user input mode, e.g., clicks a button to select a virtual drawing tool which is configured to draw a line, select an object, paint an object or the like. Coordinate inputs from a graphic input device such as a touch screen, digitizer or mouse are then processed according to the behavioral characteristics of the identified virtual drawing tool. Although this approach can provide a useful interface, it may require operations that may be counterintuitive in the context of the drawing page metaphor. For example, a user may be required to select a virtual xe2x80x9cpencilxe2x80x9d to draw a line and then must choose a xe2x80x9cselectxe2x80x9d tool to highlight the line for erasure, while in a real drawing environment both operations may be performed by a single tool, i.e., a pencil with an eraser on one end.
In light of the foregoing, it is an object of the present invention to provide methods, apparatus and computer program products for providing user inputs to an application that can provide a more intuitive user interface.
It is another object of the present invention to provide methods, apparatus and computer program products for providing user inputs to an application that can be implemented using conventional touch screens or other contact-sensitive user input devices.
These and other objects, features and advantages are provided according to the present invention by methods and apparatus which provide user input to an application by contacting a contact-sensitive surface such as a touch screen with an implement having a contact surface that produces a distinctive contact point configuration on the contact-sensitive surface. The contact point configuration is identified and the contact points are processed according to the identified contact point configuration. According to one embodiment, a user may contact the contact-sensitive surface with one end of an implement having a first end which produces a first contact point configuration and a second end which produces a contact point configuration different than the first contact point configuration. For example, the implement may be a stylus having a first end with a signal point that produces a single contact point when placed against a contact-sensitive surface, and a second end with multiple points that produce multiple contact points when placed against the contact-sensitive surface.
In particular, according to the present invention, user input is provided to an application resident on a data processing system by contacting a contact-sensitive surface of a user input device with an implement configured to produce a contact point configuration including at least one contact point. The contact point configuration is identified, and a user input mode is identified based on the identified contact point configuration. The at least one contact point is processed in the application based on the identified user input mode. The implement may have first and second ends configured to produce respective first and second contact point configurations when placed against the contact-sensitive surface.
According to one embodiment of the present invention, the implement comprises a stylus having first and second ends. According to another embodiment, the user input device comprises a screen having a contact-sensitive surface, the screen being configured to provide a graphical display for the application. The application may be configured to display a graphical workpiece on the screen, and a user input mode may be identified by identifying a virtual tool having a predetermined behavior with respect to the graphical workpiece. The at least one contact point may be processed by performing a drawing operation on the graphical workpiece according to the behavior of the identified virtual tool.
A system according to the present invention comprises a user input device that includes a contact-sensitive surface and which is configured to produce a signal indicative of contact on an object with the contact-sensitive surface. A data processor is operatively associated with the user input device and includes an application configured to identify a contact point configuration including at least one contact point produced by contact of an object with the contact-sensitive surface, to select a user input mode based on the identified contact point configuration and to process the at least one contact point based on the identified user input mode. The user input device may comprise a screen having a contact-sensitive surface, the screen being configured to provide a graphical display for the application. The application may be configured to display a graphical workpiece on the screen, to identify a virtual tool having a predetermined behavior with respect to the graphical workpiece, and to perform a drawing operation on the graphical workpiece according to the behavior of the identified virtual tool.
According to another aspect of the present invention, a computer program product is provided that includes a computer-readable storage medium having computer-readable program code means embodied therein. The computer-readable program code means includes first computer-readable program code means for identifying a contact point configuration from at least one contact point, second computer-readable program code means, responsive to the first computer-readable program code means, for identifying a user input mode based on the identified contact point configuration, and third computer-readable program code means, responsive to the first computer-readable program code means, for processing the at least one contact point in the application based on the identified user input mode. The second computer-readable program code means may comprise computer-readable program code means for identifying a virtual tool having a predetermined behavior with respect to a graphical workpiece. The third computer-readable program code means may comprise computer-readable program code means for performing a drawing operation on the graphical workpiece according to the behavior of the identified virtual tool. Improved user input methods, apparatus and computer program products are thereby provided.